package com.scofd.signature;

import java.util.List;

public class SignatureArgs {
    /**
     * OFD文件路径
     */
    private String ofdFilePath;
    /**
     * OFD文件数据
     */
    private byte[] ofdFileData;
    /**
     * 文件密码
     */
    private String filePassword;
    /**
     * 文件用户名
     */
    private String fileUserName;
    /**
     * 文档索引
     */
    private int docIndex;
    /**
     * 版本索引，主要用于OFD文件，从0开始
     */
    private int verIndex;
    /**
     * 页面索引
     */
    private int pageIndex;
    /**
     * 页面ID
     */
    private int pageId;
    /**
     * 页面索引列表，用于多页签章，多页同一位置签章
     */
    private int[] pageIndexList;
    /**
     * 连续签章位置参数
     */
    private List<SignaturePosArgs> signaturePosArgsList;
    /**
     * 印章ID
     */
    private String sealId;
    /**
     * 签章位置X坐标
     */
    private double sealX;
    /**
     * 签章位置Y坐标
     */
    private double sealY;
    /**
     * 是否是骑缝章
     */
    private boolean isCrossPageSeal;
    /**
     * 骑缝章开始页号
     */
    private int beginPageNo;
    /**
     * 骑缝章结束页号
     */
    private int endPageNo;
    /**
     * 骑缝章页面子集类型，0为所有页，1位奇数页，2位偶数页
     */
    private int subsetType;
    /**
     * 骑缝章距离文档底部的距离
     */
    private float distanceY;
    /**
     * 骑缝章平均分配，即每多少页平分一个骑缝章
     */
    private int equalDivision;
    /**
     * 骑缝章首页占比
     */
    private float firstPageRate;
    /**
     * 骑缝章其余每多少页平分一个骑缝章
     */
    private int firstPageEqualDivision;
    /**
     * 是否仅数字签名
     */
    private boolean onlyDigitalSignature;
    /**
     * 签章域名称
     */
    private String signFieldName;
    /**
     * 原因，主要用于PDF文件
     */
    private String reason;
    /**
     * 位置，主要用于PDF文件
     */
    private String location;
    /**
     * 印章图像base64数据，主要用于PDF云签章
     */
    private String sealImageBase64Data;
    /**
     * 印章图像格式，主要用于PDF云签章
     */
    private String sealImageType;
    /**
     * 印章宽度，单位毫米，主要用于PDF云签章
     */
    private float sealWidth;
    /**
     * 印章高度，单位毫米，主要用于PDF云签章
     */
    private float sealHeight;
    /**
     * 签章位置X偏移量，单位毫米
     */
    private float sealOffsetX;
    /**
     * 签章位置Y偏移量，单位毫米
     */
    private float sealOffsetY;
    /**
     * 签名值base64数据，主要用于PDF云签章
     */
    private String certSignMsg;
    /**
     * 临时输出PDF文件路径，主要用于PDF云签章
     */
    private String tmpOutputPDFFilePath;
    /**
     * 认证标识
     */
    private int authType;
    /**
     * 证书key
     */
    private String keySn;
    /**
     * 原文数据列表，修改过的原文数据
     */
    private List<OriginalData> originalDataList;
    /**
     * 是否使用指定的原文数据列表作为摘要数据列表
     */
    private boolean useOriginalDataListAsDigestFileList;
    /**
     * 签章类型
     */
    private int signatureType;
    /**
     * 签章名称
     */
    private String signatureName;
    /**
     * 签章单位
     */
    private String signatureUnit;
    /**
     * 签章用户
     */
    private String signatureUser;
    /**
     * 附加时间
     */
    private AdditionalTime additionalTime;
    /**
     * 附加文本
     */
    private AdditionalContent additionalContent;
    /**
     * 关键字
     */
    private String keyWords;
    /**
     * 匹配关键字位置索引，从0开始，支持正序(正值)和倒序(负值)
     */
    private int[] keywordPosIndexList;
    /**
     * 如果指定关键字位置索引无效，则取默认位置，0: 为第一个，1：为最后一个，默认为1
     */
    private int defaultInvalidKeywordPosIndex;
    /**
     * 定位成功后印章坐标位置，0为中心点，1为左上角坐标点，可以为空，默认为左上角
     */
    private int sealReferencePoint;
    /**
     * 摘要方法
     */
    private String digestMethod;
    /**
     * 签名方法
     */
    private String signMethod;
    /**
     * OES提供者标识
     */
    private String oesProviderName;
    /**
     * OES制造商
     */
    private String oesCompany;
    /**
     * OES版本
     */
    private String oesVersion;
    /**
     * OES协议版本
     */
    private String oesProtocolVersion;
    /**
     * 签名时间
     */
    private String signDateTime;
    /**
     * 是否是获取签名原文
     */
    private boolean isGetSignOriginalData;
    /**
     * 自定义文档属性值
     */
    private String customPuchDocProperty;
    /**
     * OES动态库路径
     */
    private String oesDllFilePath;
    /**
     * 是否是连续签章，主要用于OFD文件
     */
    private boolean isContinuousSignature;

    public SignatureArgs() {
        verIndex = 0;
        pageIndex = -1;
        pageId = -1;
        equalDivision = 1;
        firstPageRate = 1.0f;
        firstPageEqualDivision = 1;
        sealReferencePoint = -1;
        isGetSignOriginalData = false;
        defaultInvalidKeywordPosIndex = 1;
        isContinuousSignature = false;
        beginPageNo = -1;
        endPageNo = -1;
    }

    public String getOfdFilePath() {
        return ofdFilePath;
    }

    public void setOfdFilePath(String ofdFilePath) {
        this.ofdFilePath = ofdFilePath;
    }

    public byte[] getOfdFileData() {
        return ofdFileData;
    }

    public void setOfdFileData(byte[] ofdFileData) {
        this.ofdFileData = ofdFileData;
    }

    public int getDocIndex() {
        return docIndex;
    }

    public void setDocIndex(int docIndex) {
        this.docIndex = docIndex;
    }

    public int getPageIndex() {
        return pageIndex;
    }

    public int getVerIndex() {
        return verIndex;
    }

    public void setVerIndex(int verIndex) {
        this.verIndex = verIndex;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }

    public String getSealId() {
        return sealId;
    }

    public void setSealId(String sealId) {
        this.sealId = sealId;
    }

    public double getSealX() {
        return sealX;
    }

    public void setSealX(double sealX) {
        this.sealX = sealX;
    }

    public double getSealY() {
        return sealY;
    }

    public void setSealY(double sealY) {
        this.sealY = sealY;
    }

    public boolean isCrossPageSeal() {
        return isCrossPageSeal;
    }

    public void setCrossPageSeal(boolean crossPageSeal) {
        isCrossPageSeal = crossPageSeal;
    }

    public int getBeginPageNo() {
        return beginPageNo;
    }

    public void setBeginPageNo(int beginPageNo) {
        this.beginPageNo = beginPageNo;
    }

    public int getEndPageNo() {
        return endPageNo;
    }

    public void setEndPageNo(int endPageNo) {
        this.endPageNo = endPageNo;
    }

    public int[] getPageIndexList() {
        return pageIndexList;
    }

    public void setPageIndexList(int[] pageIndexList) {
        this.pageIndexList = pageIndexList;
    }

    public List<SignaturePosArgs> getSignaturePosArgsList() {
        return signaturePosArgsList;
    }

    public void setSignaturePosArgsList(List<SignaturePosArgs> signaturePosArgsList) {
        this.signaturePosArgsList = signaturePosArgsList;
    }

    public int getSubsetType() {
        return subsetType;
    }

    public void setSubsetType(int subsetType) {
        this.subsetType = subsetType;
    }

    public float getDistanceY() {
        return distanceY;
    }

    public void setDistanceY(float distanceY) {
        this.distanceY = distanceY;
    }

    public int getEqualDivision() {
        return equalDivision;
    }

    public void setEqualDivision(int equalDivision) {
        this.equalDivision = equalDivision;
    }

    public float getFirstPageRate() {
        return firstPageRate;
    }

    public void setFirstPageRate(float firstPageRate) {
        this.firstPageRate = firstPageRate;
    }

    public int getFirstPageEqualDivision() {
        return firstPageEqualDivision;
    }

    public void setFirstPageEqualDivision(int firstPageEqualDivision) {
        this.firstPageEqualDivision = firstPageEqualDivision;
    }

    public boolean isOnlyDigitalSignature() {
        return onlyDigitalSignature;
    }

    public void setOnlyDigitalSignature(boolean onlyDigitalSignature) {
        this.onlyDigitalSignature = onlyDigitalSignature;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getFilePassword() {
        return filePassword;
    }

    public void setFilePassword(String filePassword) {
        this.filePassword = filePassword;
    }

    public String getSealImageBase64Data() {
        return sealImageBase64Data;
    }

    public void setSealImageBase64Data(String sealImageBase64Data) {
        this.sealImageBase64Data = sealImageBase64Data;
    }

    public String getSealImageType() {
        return sealImageType;
    }

    public void setSealImageType(String sealImageType) {
        this.sealImageType = sealImageType;
    }

    public float getSealWidth() {
        return sealWidth;
    }

    public void setSealWidth(float sealWidth) {
        this.sealWidth = sealWidth;
    }

    public float getSealHeight() {
        return sealHeight;
    }

    public void setSealHeight(float sealHeight) {
        this.sealHeight = sealHeight;
    }

    public String getCertSignMsg() {
        return certSignMsg;
    }

    public void setCertSignMsg(String certSignMsg) {
        this.certSignMsg = certSignMsg;
    }

    public String getTmpOutputPDFFilePath() {
        return tmpOutputPDFFilePath;
    }

    public void setTmpOutputPDFFilePath(String tmpOutputPDFFilePath) {
        this.tmpOutputPDFFilePath = tmpOutputPDFFilePath;
    }

    public int getAuthType() {
        return authType;
    }

    public void setAuthType(int authType) {
        this.authType = authType;
    }

    public String getKeySn() {
        return keySn;
    }

    public void setKeySn(String keySn) {
        this.keySn = keySn;
    }

    public List<OriginalData> getOriginalDataList() {
        return originalDataList;
    }

    public void setOriginalDataList(List<OriginalData> originalDataList) {
        this.originalDataList = originalDataList;
    }

    public String getSignFieldName() {
        return signFieldName;
    }

    public void setSignFieldName(String signFieldName) {
        this.signFieldName = signFieldName;
    }

    public int getPageId() {
        return pageId;
    }

    public void setPageId(int pageId) {
        this.pageId = pageId;
    }

    public int getSignatureType() {
        return signatureType;
    }

    public void setSignatureType(int signatureType) {
        this.signatureType = signatureType;
    }

    public String getSignatureName() {
        return signatureName;
    }

    public void setSignatureName(String signatureName) {
        this.signatureName = signatureName;
    }

    public String getSignatureUnit() {
        return signatureUnit;
    }

    public void setSignatureUnit(String signatureUnit) {
        this.signatureUnit = signatureUnit;
    }

    public String getSignatureUser() {
        return signatureUser;
    }

    public void setSignatureUser(String signatureUser) {
        this.signatureUser = signatureUser;
    }

    public boolean isUseOriginalDataListAsDigestFileList() {
        return useOriginalDataListAsDigestFileList;
    }

    public void setUseOriginalDataListAsDigestFileList(boolean useOriginalDataListAsDigestFileList) {
        this.useOriginalDataListAsDigestFileList = useOriginalDataListAsDigestFileList;
    }

    public AdditionalTime getAdditionalTime() {
        return additionalTime;
    }

    public void setAdditionalTime(AdditionalTime additionalTime) {
        this.additionalTime = additionalTime;
    }

    public AdditionalContent getAdditionalContent() {
        return additionalContent;
    }

    public void setAdditionalContent(AdditionalContent additionalContent) {
        this.additionalContent = additionalContent;
    }

    public String getKeyWords() {
        return keyWords;
    }

    public void setKeyWords(String keyWords) {
        this.keyWords = keyWords;
    }

    public float getSealOffsetX() {
        return sealOffsetX;
    }

    public void setSealOffsetX(float sealOffsetX) {
        this.sealOffsetX = sealOffsetX;
    }

    public float getSealOffsetY() {
        return sealOffsetY;
    }

    public void setSealOffsetY(float sealOffsetY) {
        this.sealOffsetY = sealOffsetY;
    }

    public int getSealReferencePoint() {
        return sealReferencePoint;
    }

    public void setSealReferencePoint(int sealReferencePoint) {
        this.sealReferencePoint = sealReferencePoint;
    }

    public String getDigestMethod() {
        return digestMethod;
    }

    public void setDigestMethod(String digestMethod) {
        this.digestMethod = digestMethod;
    }

    public String getSignMethod() {
        return signMethod;
    }

    public void setSignMethod(String signMethod) {
        this.signMethod = signMethod;
    }

    public String getOesProviderName() {
        return oesProviderName;
    }

    public void setOesProviderName(String oesProviderName) {
        this.oesProviderName = oesProviderName;
    }

    public boolean isGetSignOriginalData() {
        return isGetSignOriginalData;
    }

    public void setGetSignOriginalData(boolean getSignOriginalData) {
        isGetSignOriginalData = getSignOriginalData;
    }

    public int[] getKeywordPosIndexList() {
        return keywordPosIndexList;
    }

    public void setKeywordPosIndexList(int[] keywordPosIndexList) {
        this.keywordPosIndexList = keywordPosIndexList;
    }

    public int getDefaultInvalidKeywordPosIndex() {
        return defaultInvalidKeywordPosIndex;
    }

    public void setDefaultInvalidKeywordPosIndex(int defaultInvalidKeywordPosIndex) {
        this.defaultInvalidKeywordPosIndex = defaultInvalidKeywordPosIndex;
    }

    public String getCustomPuchDocProperty() {
        return customPuchDocProperty;
    }

    public void setCustomPuchDocProperty(String customPuchDocProperty) {
        this.customPuchDocProperty = customPuchDocProperty;
    }

    public String getFileUserName() {
        return fileUserName;
    }

    public void setFileUserName(String fileUserName) {
        this.fileUserName = fileUserName;
    }

    public String getOesDllFilePath() {
        return oesDllFilePath;
    }

    public void setOesDllFilePath(String oesDllFilePath) {
        this.oesDllFilePath = oesDllFilePath;
    }

    public String getOesCompany() {
        return oesCompany;
    }

    public void setOesCompany(String oesCompany) {
        this.oesCompany = oesCompany;
    }

    public String getOesVersion() {
        return oesVersion;
    }

    public void setOesVersion(String oesVersion) {
        this.oesVersion = oesVersion;
    }

    public String getOesProtocolVersion() {
        return oesProtocolVersion;
    }

    public void setOesProtocolVersion(String oesProtocolVersion) {
        this.oesProtocolVersion = oesProtocolVersion;
    }

    public String getSignDateTime() {
        return signDateTime;
    }

    public void setSignDateTime(String signDateTime) {
        this.signDateTime = signDateTime;
    }

    public boolean isContinuousSignature() {
        return isContinuousSignature;
    }

    public void setContinuousSignature(boolean continuousSignature) {
        isContinuousSignature = continuousSignature;
    }
}
